#ifndef CARDPANEL_H
#define CARDPANEL_H

#include <QWidget>
#include "card.h"
#include "player.h"

class CardPanel : public QWidget
{
    Q_OBJECT
public:
    explicit CardPanel(QWidget *parent = nullptr);

    // 设置图片 正面和背面
    void setImage(QPixmap &front, QPixmap &back);

    // 获取图片 QT的风格是不写get
    QPixmap Image();

    // 扑克牌显示那一面
    void setFrontSide(bool flag);
    bool isFrontSide();

    // 记录窗口是否被选中
    void setSelected(bool flag);
    // 判断当前窗口是否选中状态
    bool isSelected();

    // 扑克牌的点数以及花色
    void setCard(Card &card);
    Card getCard();

    // 扑克牌的所有者
    void setOwner(Player* player);
    Player* getOwner();

protected:
    void paintEvent(QPaintEvent *event);
    // 重写鼠标按下事件
    void mousePressEvent(QMouseEvent* event);
signals:

private:
    QPixmap m_front;  // 卡牌的前面
    QPixmap m_back;   // 卡牌的背面

    bool m_isfront;   // 是否是正面
    bool m_isSelect;  // 是否被选中

    Card m_card;

    Player* m_owner;  // 卡牌拥有者
};

#endif // CARDPANEL_H
